/**
 * <p>Copyright:Copyright(c) 2019</p>
 * <p>Company:Professional</p>
 * <p>Package:com.cesgroup.zw.spring.boot.echarts.component.visual</p>
 * <p>File:VisualMap.java</p>
 * <p>类更新历史信息</p>
 * @todo chanlong(陈龙) 创建于 May 13, 2019 2:21:51 PM
 */
package com.cesgroup.zw.spring.boot.echarts.component.visual;

import java.util.Map;

import com.cesgroup.zw.spring.boot.echarts.BasicComponent;
import com.cesgroup.zw.spring.boot.echarts.component.TextStyle;
import com.cesgroup.zw.spring.boot.echarts.enums.Align;
import com.cesgroup.zw.spring.boot.echarts.enums.Orient;
import com.cesgroup.zw.spring.boot.echarts.model.style.RangeStyle;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>描述: 视觉映射组件</p>
 * <p>Company: Professional</p>
 * @author chanlong(陈龙)
 * @date May 13, 2019 2:21:51 PM
 * @version 1.0.2019
 */
@Data @SuppressWarnings("serial")
@EqualsAndHashCode(callSuper = true)
public abstract class VisualMap extends BasicComponent {

	/** 组件类型 */
	private String type;
	
	/** 指定组件的允许的最小值，必选项 */
	private	Integer min;
	
	/** 指定组件的允许的最大值，必选项 */
	private	Integer max;
	
	/** 是否反转组件，[default: false] */
	private Boolean inverse;
	
	/** 数据展示的小数精度，[default: 0] */
	private	Integer precision;
	
	/** 图形的宽度，[default: 20] */
	private	Integer itemWidth;
	
	/** 图形的高度，[default: 140] */
	private	Integer itemHeight;
	
	/** 指定组件中手柄和文字的摆放位置，[default: 'auto'] */
	private	Align align;
	
	/** 是否显示组件，[default: true] */
	private	String[] text;
	
	/** 两端文字主体之间的距离，单位为px，[default: 10] */
	private	Integer textGap;
	
	/** 是否显示组件，[default: true] */
	private Boolean show;
	
	/** 指定用数据的『哪个维度』，映射到视觉元素上 */
	private Integer dimension;
	
	/** 指定取哪个系列的数据 */
	private	Object seriesIndex;
	
	/** 鼠标悬浮在组件上时，图形元素是否高亮，[default: true] */
	private Boolean hoverLink;
	
	/** 定义 <b>在选中范围中</b> 的视觉元素 */
	private RangeStyle inRange;
	
	/** 定义 <b>在选中范围外</b> 的视觉元素 */
	private RangeStyle outRange;
	
	/** 定义控制器的 <b>inRange</b> 和 <b>outOfRange</b> 视觉元素 */
	private	Map<String, RangeStyle> controller;
	
	/** 组件离容器上侧的距离，[default: 'auto'] */
	private Object top;
	
	/** 组件离容器左侧的距离，[default: 'auto'] */
	private Object left;
	
	/** 组件离容器右侧的距离，[default: 'auto'] */
	private Object right;
	
	/** 组件离容器下侧的距离，[default: 'auto'] */
	private Object bottom;
	
	/** 组件的布局方向，[default: 'vertical'] */
	private Orient orient;
	
	/** 组件的内边距，[default: 5] */
	private Object padding;
	
	/** 标题背景色，[default: 'transparent'] */
	private Object backgroundColor;
	
	/** 标题边框颜色，[default: '#ccc'] */
	private Object borderColor;
	
	/** 标题边框线宽，[default: 0] */
	private Integer borderWidth;
	
	/** 视觉组件的调色盘 */
	@Deprecated
	private Object color;
	
	/** 文本样式 */
	private TextStyle textStyle;
	
	/** 标签的格式化工具 */
	private Object formatter;
}
